'''
时间
处理从API获取的数据中奇葩格式的时间信息

此程序标准时间格式 %Y-%m-%d %H:%M:%S

'''

from time import *
from datetime import datetime, date


def parse_time(inbound: str):
    '''
    转换和风天气的时间戳到时间结构体
    '''
    time = inbound.split('+')[0]
    area = inbound.split('+')[1]

    time = strptime(time, "%Y-%m-%dT%H:%M")
    return time


def reformat(inbound: str):
    '''
    转换和风天气的时间戳到适宜阅读的时间戳
    '''
    return strftime("%Y-%m-%d %H:%M:%S", parse_time(inbound))

def parse(time: float):
    '''
    转换数值时间戳到适宜阅读的时间戳
    '''
    return strftime("%Y-%m-%d %H:%M:%S", localtime(time))


def now():
    '''
    直接以适宜阅读的格式输出现在的时间
    '''
    return parse(time())


def time_diff(time1, time2=now()):
    '''
    时间差

    @return 秒数
    '''

    t1 = datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")
    t2 = datetime.strptime(time2, "%Y-%m-%d %H:%M:%S")

    if t1 > t2:
        return -((t1 - t2).total_seconds())
    else:
        return (t2 - t1).total_seconds()

def format(fromat: str, time: str = now()):
    '''
    以自定义格式转换适宜阅读的时间戳
    '''
    tm = strptime(time, "%Y-%m-%d %H:%M:%S")
    return strftime(fromat, tm)
